﻿using System.Text.RegularExpressions;

namespace CTP.CRM.Core.Helper
{
    /// <summary>
    /// Des:字符串处理公共类
    /// Author:liuhongwei
    /// Date:2023-06-13
    /// </summary>
    public static class StringHelper
    {
        /// <summary>
        /// 正则表达式过滤银行卡类型
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static bool RegxAccount(string input)
        {
            string regx = input;
            //1、人民币账号（以1、2、3、4、5、6、7、8或9开头的19位数字，其中最后一位为校验位）
            string regx1 = @"^[0-9]*$";
            ////2、港币银行账号（以2位国家代码“HK”开头，后接3位数字、1位大写字母和7位数字）
            //string regx2 = @"/^[Hh][Kk]\\d{3}[A-Za-z]\\d{7}$/";//hk785Y1234567
            ////3、美元账号：以“59”开头的11位数字。
            //string regx3 = @"/^59\\d{9}$/";
            ////4、欧元账号：以“64”开头的10位数字。
            //string regx4 = @"/^64\d{8}$/";
            ////5、英镑账号：以“39”或“49”开头的14位数字。
            //string regx5 = @"/^[34]9\d{12}$/";
            return Regex.IsMatch(regx, regx1);
        }

        /// <summary>
        /// 验证身份证号格式
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static bool RegxIdCard(string input)
        {
            string idCardRegx = @"^(^\d{18}$|^\d{17}(\d|X|x))$";
            return Regex.IsMatch(input, idCardRegx);
        }

        /// <summary>
        /// 验证中文格式
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static bool RegxCn(string input)
        {
            string chineseStr = @"[\u4e00-\u9fa5]";
            return Regex.IsMatch(input, chineseStr);
        }

        /// <summary>
        /// 验证空格
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static bool RegxWhiteSpace(string input)
        {
            string whiteSpace = @"\s"; // 匹配空格字符
            return Regex.IsMatch(input, whiteSpace);
        }
    }
}
